package security;

import java.util.ArrayList;
import java.util.List;

import main.Application;

import tools.Pair;

public class TableRights 
{
	private List< Pair<String,String>> security; //<np kod_wydzialu (ale juz konkretny kod), R/M>
	private String magicFieldName;// nazwa pola, na ktre zalozone jest zabezpieczenie np "kod_wydzialu"
	
	public TableRights(String fieldName)
	{
		security = new ArrayList<Pair<String,String>>();
		this.magicFieldName=fieldName;
	}
	/**
	 * dodaje zabezpieczenie
	 * @param target np kod_wydzialu
	 * @param lvl poziom zabezpieczen
	 */
	public void addSecure(String target,String lvl)
	{
		security.add(new Pair<String, String>(target,lvl));
	}
	@Override
	public String toString()
	{
		return security.toString();
	}
	/**
	 * zwroci nazwe pola dla od ktorego zaleza uprawnienia np "kod_wydzialu"
	 * @return
	 */
	public String getFieldName()
	{
		return magicFieldName;
	}
	/**
	 * zwraca poziom uprawnien dal zapodanej wartosci pola od ktorego uprawnienia zaleza. 
	 *Zwraca wartosci z RightsAttributes.RIGHT_...
	 * @param fieldValue
	 * @return
	 */
	public String getRightsLvl(String fieldValue)
	{
		if(Application.getInstance().getLogin().equals(Application.getInstance().getAdminLogin()))
			return RightsAttributes.RIGHT_MODIFY;
		for(int i=0;i<security.size();++i)
		{
			if(security.get(i).getLeft().equals(fieldValue))
				return security.get(i).getRight();
		}
		return RightsAttributes.RIGHT_NONE;
	}
}
